/*
* @Author: Administrator
* @Date:   2018-01-15 13:13:53
* @Last Modified by:   Administrator
* @Last Modified time: 2018-01-16 11:36:20
*/
'use strict'
require('./index.css');
require('page/common/nav/index.js');
require('page/common/header/index.js');
var _product          = require('service/product-service.js');
var _mm				=require('util/mm.js');
var Pagination      = require('util/pagination/index.js');
var templateIndex   = require('./index.string');

var page ={
	data:{
		listParam:{
			keyword	:_mm.getUrlParam('keyword')			     || '',
			categoryId	:_mm.getUrlParam('categoryId') 		 || '',
			orderBy	:_mm.getUrlParam('orderBy')				 || 'default',
			pageNum	:_mm.getUrlParam('pageNum') 			 || 1,
			PageSize	:_mm.getUrlParam('PageSize') 		 || 20
		}
	},
	init: function(){
		this.onLoad();
		this.bindEvent();
	},

	onLoad :function(){
		this.loadList();
	},
	bindEvent :function(){
		 var _this = this;
		$('.sort-item').click(function(){
			var $this=$(this);
			_this.data.listParam.pageNum=1;

			 if($this.data('type') === 'default'){
				//已经是active样式
				if ($this.hasClass('active')) {
					return;
				}else{
					$_this.addClass('active').slibings('.soort-item')
						.removeClass('active asc desc');
						_this.data.listParam.orderBy = 'default';
				}
			}			 // 点击价格排序
            else if($this.data('type') === 'price'){
                // active class 的处理
                $this.addClass('active').siblings('.sort-item')
                        .removeClass('active asc desc');
                // 升序、降序的处理
                if(!$this.hasClass('asc')){
                    $this.addClass('asc').removeClass('desc');
                    _this.data.listParam.orderBy = 'price_asc';
                }else{
                    $this.addClass('desc').removeClass('asc');
                    _this.data.listParam.orderBy = 'price_desc';
                }
            }
            // 重新加载列表
            _this.loadList();
		});
		
		
	},


	//加载list数据
	 loadList : function(){
	         var _this       = this,
            listHtml    = '',
            listParam   = this.data.listParam,
            $pListCon   = $('.p-list-con');
        $pListCon.html('<div class="loading"></div>');
        // 删除参数中不必要的字段
        listParam.categoryId 
            ? (delete listParam.keyword) : (delete listParam.categoryId);
        // 请求接口
        _product.getProductList(listParam, function(res){
            listHtml = _mm.renderHtml(templateIndex, {
                list :  res.list
            });
            $pListCon.html(listHtml);
            _this.loadPagination({
                hasPreviousPage : res.hasPreviousPage, //上一页
                prePage         : res.prePage,
                hasNextPage     : res.hasNextPage, //下一页
                nextPage        : res.nextPage,
                pageNum         : res.pageNum,  //当前选中的页面
                pages           : res.pages
            });
        }, function(errMsg){
            _mm.errorTips(errMsg);
        });
	 },
 // 加载分页信息
    loadPagination : function(pageInfo){
        var _this = this;
        this.pagination ? '' : (this.pagination = new Pagination()); //判断分页类是否存在 存在直接使用不存在new出一个恶心的
        this.pagination.render($.extend({}, pageInfo, {
            container : $('.pagination'),
            onSelectPage : function(pageNum){
                _this.data.listParam.pageNum = pageNum;
                _this.loadList();
            }
        }));
    }
};
$(function(){
    page.init();
})
